今天比較簡短,用talib弄個拋物線指標(Parabolic SAR)
https://mrjbq7.github.io/ta-lib/func_groups/overlap_studies.html
它的效果如圖示,會利用每日最高價和最低價來畫趨勢線(紅色),當最高價向上突破趨勢線之後就會把手上的部位出掉並且反手做多,反過來說如果最低價往下突破趨勢線就會做空。從圖片上來看他的趨勢線跟收盤價的價格曲線貼得滿近的,跟前面的均線指標相比停損點會比較近,相對的就是停損次數比較多。它裡面有兩個參數,一個是加速度,另一個是速度的上限。(參考以下網址)
https://www.investopedia.com/terms/p/parabolicindicator.asp
首先先改createDaySeries和getStockDailyPrice這兩個函數,讓他們可以支援,
接著是取出開盤、收盤、最高、最低,然後用talib.SAR算趨勢線,最後畫出上面那張圖。
做完之後觀察這次SAR的參數,跟前面均線的參數比較。會發現它們用到的資料其實南轅北轍,如果要把最佳化跟回測的部分整理成所有指標通用的function,比較合理的做法是直接把指標function的函數、訊號、還有用到的資料打包成一個物件,然後直接把物件丟進最佳化的流程裡面,再看一下要怎麼設計。
最後先記錄一下,之後或許能寫一些整零價差套利交易/網格交易,不過開市的時間基本上都要上班,真的能弄這個的時間大概就中秋連假請的三天特休了。